بالنظر إلى مجموعة $ $، يتعين علينا إيجاد منتج من $ A_ {j} $ - $ A_ {I} $ modulo $ 998244353 $ من $ ی $ $ $ and $ j $ jected $ j> i $
-
29-09-2020 - |
سؤال
إعطاء صفيف $ $ ، علينا العثور على منتج $ a_ {} $ - $ A_ {I} $ modulo $ 998244353 $ على جميع $ i $ و $ J $ معين $ j> i $ .
على سبيل المثال.دع الصفيف يكون 1،2،3 دولار ثم سيتم احتساب إجابتي باسم
$ (2-1) $ . $ (3-1) $ . $ (3-2) $ = $ 2 $
نظرا لأن عدد العناصر الموجودة في الصفيف يمكن أن تكون كبيرة (حتى 10 دولارات ^ 5 $ ) أنا أبحث عن محلول النظام $ nlogn$ .
لقد حاولت تمثيل صفيف كعناني متعدد الحدود ولكنه يمكن أن يحصل على أي شيء خارجها.
الرجاء المساعدة.
المحلول
المنتج $$ v=prod_ {i
مربع هذا الرقم هو المعتقدات $ d $ متعدد الحدود $$ p (x)=prod_i (x-a_i) $
هذا بدوره يساوي $$ v ^ 2= d= (- 1) ^ {n (n-1) / 2} \ prod_ip '(a_i) $$
يمكنك حساب معاملات $ p (x) $ ، وبالتالي $ p '(x) $ < / span> تقييمها في $ n $ نقاط $ a_1، a_2، ...، a_n $ منتجاتهم. ثم حساب الجذر مربع. علامة $ v تحددها عن طريق الفرز وتعد تكاسك عدد مفاتيح التبديل.
يمكنك القيام بكل هذا في $ O (n \ log ^ 2 (n)) $ .
شاهد الخوارزميات ذات الصلة هنا < / a>.
بالنسبة للجذر المربع المعياري، يمكنك استخدام tonelli-shanks لكفاءة. على الرغم من أن الترتيب النظري لهذه الخطوة ثابتة منذ Prime $ 998244353 $ تم إصلاحها.